#ifndef _BATBOSS_H
#define _BATBOSS_H
 
#include "Object.h"

#define BATBOSS_VX	0.1
#define BATBOSS_VY	0.1
#define BATBOSS_GRAVITY		0.01
#define BATBOSS_DISTANCE_X	200
#define BATBOSS_DISTANCE_Y	50
 

/************************************************************************/
/* BatBoss Class                                                        */
/************************************************************************/

class BatBoss : public Object
{
private:
	 
	float time_die;			//tinh thoi gian chet

	Sprite* p_light;

	//new
	bool is_collission;		//kiem tra va cham voi simon
	bool is_go_point1;		//kiem tra co quay ve point 1 hay chua?

	int distance_x, distance_y;		//khoang cach tien ve simon hoac ra xa
	float _x_point1, _y_point1;		//diem tro ve point 1
	float _x_point2, _y_point2;		//diem tro ve point 2

public:
	/*
	 *	get/set properties
	 */
	OBJECT_TYPE getObjectType();

	/*
	 *	Constructor/Destructor
	 */	
	BatBoss(LPDIRECT3DDEVICE9 d3ddv,  LPDIRECT3DSURFACE9 BackBuffer, LPD3DXSPRITE SpriteHandler, float x, float y, int ID, int Object_State, int Direction);	
	~BatBoss();

	/*
	 *	Method
	 */	
  	void move(list<Object*>* obj_list, float TPF, Object* simon);	
	void update(list<Object*>* obj_list, DxInput* input, float TPF, Object* simon);

	void render(int cameraX, int cameraY);
	void changeState(int state);
};

#endif